Micron Document
🎖️GitЯра🎖️


Displaying Raw • Download

.github/workflows/merge-queue.yml chore/develocity-tuning (359761e6) Text, 4.59 KB

Tff7b72nameTb4b4b4: Ta5d6ffAndroidTa5d6ff Ta5d6ffCITa5d6ff Ta5d6ff(MergeTa5d6ff Ta5d6ffQueue)

Tff7b72onTb4b4b4:
Tff7b72merge_groupTb4b4b4:
Tff7b72typesTb4b4b4: Tb4b4b4[Te6edf3checks_requestedTb4b4b4]

Tff7b72permissionsTb4b4b4:
Tff7b72contentsTb4b4b4: Ta5d6ffread

T8b949e# Note: github.ref is unique per merge-group entry (gh-readonly-queue/main/pr-N-<sha>),
T8b949e# so this group never dedupes across re-queues of the same PR — the cancel-superseded
T8b949e# job below handles that explicitly.
Tff7b72concurrencyTb4b4b4:
Tff7b72groupTb4b4b4: Ta5d6ffbuild-mq-${{Ta5d6ff Ta5d6ffgithub.refTa5d6ff Ta5d6ff}}
Tff7b72cancel-in-progressTb4b4b4: Ta5d6fftrue

Tff7b72jobsTb4b4b4:
T8b949e# When a PR is re-queued (an entry ahead of it failed or was removed), GitHub creates a
T8b949e# new merge group but does NOT cancel the workflow runs of the destroyed one. Those stale
T8b949e# runs sit queued/running and starve the runner pool. Cancel any older merge-queue run
T8b949e# for the same PR — only the newest merge group per PR is ever valid.
Tff7b72cancel-supersededTb4b4b4:
Tff7b72nameTb4b4b4: Ta5d6ffCancelTa5d6ff Ta5d6ffSupersededTa5d6ff Ta5d6ffQueueTa5d6ff Ta5d6ffRuns
Tff7b72ifTb4b4b4: Ta5d6ffgithub.repositoryTa5d6ff Ta5d6ff==Ta5d6ff Ta5d6ff'meshtastic/Meshtastic-Android'
Tff7b72runs-onTb4b4b4: Ta5d6ffubuntu-24.04-arm
Tff7b72timeout-minutesTb4b4b4: Ta5d6ff5
Tff7b72permissionsTb4b4b4:
Tff7b72actionsTb4b4b4: Ta5d6ffwrite
Tff7b72stepsTb4b4b4:
Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffCancelTa5d6ff Ta5d6ffolderTa5d6ff Ta5d6ffmerge-queueTa5d6ff Ta5d6ffrunsTa5d6ff Ta5d6ffforTa5d6ff Ta5d6fftheTa5d6ff Ta5d6ffsameTa5d6ff Ta5d6ffPR
Tff7b72envTb4b4b4:
Tff7b72GH_TOKENTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffgithub.tokenTa5d6ff Ta5d6ff}}
Tff7b72runTb4b4b4: Tb4b4b4|
Tff7b72# github.ref_name: gh-readonly-queue/main/pr-<num>-<base-sha>
Tff7b72PR_PREFIX=$(echo "${{ github.ref_name }}" | grep -oE 'gh-readonly-queue/.+/pr-[0-9]+-')
Tff7b72if [ -z "$PR_PREFIX" ]; then
Tff7b72echo "Could not parse PR from ref '${{ github.ref_name }}'; skipping."
Tff7b72exit 0
Tff7b72fi
Tff7b72for status in queued in_progress; do
Tff7b72gh api "repos/${{ github.repository }}/actions/runs?event=merge_group&status=${status}&per_page=100" \
Tff7b72--jq ".workflow_runs[] | select(.head_branch | startswith(\"$PR_PREFIX\")) | select(.id < ${{ github.run_id }}) | .id"
Tff7b72done | sort -u | while read -r run_id; do
Tff7b72echo "Cancelling superseded run $run_id"
Tff7b72gh run cancel "$run_id" --repo "${{ github.repository }}" || true
Tff7b72done

T8b949e# Docs-only queue entries (changelog updates, markdown fixes) cannot affect the build;
T8b949e# skip the heavy pipeline for them. Anything outside docs/ and *.md runs full CI.
T8b949e# Mirrors the paths-ignore list in main-check.yml.
Tff7b72check-changesTb4b4b4:
Tff7b72nameTb4b4b4: Ta5d6ffCheckTa5d6ff Ta5d6ffChanges
Tff7b72ifTb4b4b4: Ta5d6ffgithub.repositoryTa5d6ff Ta5d6ff==Ta5d6ff Ta5d6ff'meshtastic/Meshtastic-Android'
Tff7b72runs-onTb4b4b4: Ta5d6ffubuntu-24.04-arm
Tff7b72timeout-minutesTb4b4b4: Ta5d6ff5
Tff7b72outputsTb4b4b4:
Tff7b72androidTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffsteps.filter.outputs.androidTa5d6ff Ta5d6ff}}
Tff7b72stepsTb4b4b4:
Tb4b4b4- Tff7b72usesTb4b4b4: Ta5d6ffactions/checkout@v7.0.1
Tff7b72withTb4b4b4:
Tff7b72fetch-depthTb4b4b4: Ta5d6ff1
Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffDiffTa5d6ff Ta5d6ffmergeTa5d6ff Ta5d6ffgroupTa5d6ff Ta5d6ffagainstTa5d6ff Ta5d6ffitsTa5d6ff Ta5d6ffbase
Tff7b72idTb4b4b4: Ta5d6fffilter
Tff7b72runTb4b4b4: Tb4b4b4|
Tff7b72git fetch --depth=1 origin "${{ github.event.merge_group.base_sha }}"
Tff7b72changed=$(git diff --name-only "${{ github.event.merge_group.base_sha }}" "${{ github.event.merge_group.head_sha }}")
Tff7b72echo "Changed files:"
Tff7b72echo "$changed"
Tff7b72if echo "$changed" | grep -qvE '^docs/|\.md$|^$'; then
Tff7b72echo "android=true" >> "$GITHUB_OUTPUT"
Tff7b72else
Tff7b72echo "android=false" >> "$GITHUB_OUTPUT"
Tff7b72fi

Tff7b72android-checkTb4b4b4:
Tff7b72needsTb4b4b4: Ta5d6ffcheck-changes
Tff7b72ifTb4b4b4: Ta5d6ffgithub.repositoryTa5d6ff Ta5d6ff==Ta5d6ff Ta5d6ff'meshtastic/Meshtastic-Android'Ta5d6ff Ta5d6ff&&Ta5d6ff Ta5d6ffneeds.check-changes.outputs.androidTa5d6ff Ta5d6ff==Ta5d6ff Ta5d6ff'true'
Tff7b72usesTb4b4b4: Ta5d6ff./.github/workflows/reusable-check.yml
Tff7b72withTb4b4b4:
Tff7b72run_lintTb4b4b4: Ta5d6fftrue
Tff7b72run_unit_testsTb4b4b4: Ta5d6fftrue
T8b949e# Coverage is produced by main-check on the identical merge commit right
T8b949e# after the queue merges it — keeping Kover instrumentation and report
T8b949e# generation out of the queue's critical-path test shards.
Tff7b72run_coverageTb4b4b4: Ta5d6fffalse
T8b949e# The PR already assembled these APKs and main-check rebuilds them (with
T8b949e# -SNAPSHOT naming) for the snapshot release; a merge-combination
T8b949e# packaging break would surface there minutes later. Skipping saves a
T8b949e# runner slot per queue entry.
Tff7b72run_android_buildTb4b4b4: Ta5d6fffalse
Tff7b72upload_artifactsTb4b4b4: Ta5d6fffalse
Tff7b72secretsTb4b4b4: Ta5d6ffinherit

Tff7b72check-workflow-statusTb4b4b4:
Tff7b72nameTb4b4b4: Ta5d6ffCheckTa5d6ff Ta5d6ffWorkflowTa5d6ff Ta5d6ffStatus
Tff7b72runs-onTb4b4b4: Ta5d6ffubuntu-24.04-arm
Tff7b72timeout-minutesTb4b4b4: Ta5d6ff5
Tff7b72permissionsTb4b4b4: Tb4b4b4{Tb4b4b4}
Tff7b72needsTb4b4b4:
Tb4b4b4- Ta5d6ffcheck-changes
Tb4b4b4- Ta5d6ffandroid-check
Tff7b72ifTb4b4b4: Ta5d6ffalways()
Tff7b72stepsTb4b4b4:
Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffCheckTa5d6ff Ta5d6ffWorkflowTa5d6ff Ta5d6ffStatus
Tff7b72runTb4b4b4: Tb4b4b4|
Tff7b72if [[ "${{ needs.check-changes.result }}" != "success" ]]; then
Tff7b72echo "::error::Change detection failed"
Tff7b72exit 1
Tff7b72fi
Tff7b72if [[ "${{ needs.check-changes.outputs.android }}" == "true" && ("${{ needs.android-check.result }}" == "failure" || "${{ needs.android-check.result }}" == "cancelled") ]]; then
Tff7b72echo "::error::Android Check failed"
Tff7b72exit 1
Tff7b72fi
Tff7b72echo "All jobs passed successfully"

Served by rngit 1.5.2 - Generated in 0.05s